package javase2.day01.demo04;
/*
StringBuilder又称为可变字符序列，它是一个类似于 String 的字符串缓冲区，通过某些方法调用可以改变该序列的长度和内容。
它的内部拥有一个数组用来存放字符串内容，进行字符串拼接时，直接在数组中加入新内容。StringBuilder会自动维护数组的扩容
空间占用少
构造方法：
public StringBuilder()：构造一个空的StringBuilder容器。
public StringBuilder(String str)：构造一个StringBuilder容器，并将字符串添加进去

成员方法：
public StringBuilder append(...)：添加任意类型数据的字符串形式，并返回当前对象自身。
public String toString()：将当前StringBuilder对象转换为String对象。
 */
public class DemoStringBuilder {
    public static void main(String[] args) {
        /*
        public StringBuilder()：构造一个空的StringBuilder容器。
        abc
         */
        StringBuilder stringBuilder=new StringBuilder();
        StringBuilder str = stringBuilder.append("abc");
        System.out.println(str);
        /*
        public StringBuilder(String str)：构造一个StringBuilder容器，并将字符串添加进去
        ABC124
         */
        StringBuilder stringBuilder1=new StringBuilder("ABC");
        StringBuilder str1 = stringBuilder1.append("124");
        System.out.println(str1);
        /*
        public StringBuilder append(...)：添加任意类型数据的字符串形式，并返回当前对象自身。
        由于方法返回值是一个对象所以可以继续调用方法，即链式编程。
        abcljh
        abcljhwfwjlb
         */
        StringBuilder newstr = str.append("ljh");
        System.out.println(newstr);
        StringBuilder strnew = newstr.append("wf").append("wj").append("lb");
        System.out.println(strnew);

        /*
        public String toString()：将当前StringBuilder对象转换为String对象。

         */
        String str4="ljh";
        System.out.println("str:"+str4);
        StringBuilder str5=new StringBuilder(str4);
        str5.append("lbh");
        System.out.println("bu:"+str5);

        String str6 = str5.toString();
        System.out.println("s:"+str6);



    }
}
